package com.fowo.api.model.supplier;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplierImportPo {

  /** 供应商简称 */
  @ExcelProperty("*供应商简称")
  @NotBlank(message = "供应商简称不能为空")
  @Size(max = 50, message = "供应商简称长度不能超过50")
  private String supplierName;

  /** 供应商名称 */
  @ExcelProperty("*供应商名称")
  @NotBlank(message = "供应商名称不能为空")
  @Size(max = 50, message = "供应商名称长度不能超过50")
  private String supplierFullName;

  /** 供应商代码 */
  @ExcelProperty("供应商代码")
  private String supplierCode;

  /** 供应商等级 */
  @ExcelProperty("供应商等级")
  @Size(max = 50, message = "供应商等级长度不能超过50")
  private String level;

  /** 规模 */
  @ExcelProperty("规模")
  @Size(max = 50, message = "规模长度不能超过50")
  private String scale;

  /** 跟进人 */
  @ExcelProperty("跟进人")
  @LongString(message = "跟进人数值格式不正确", label = "跟进人")
  private String followUpPerson;

  /** 联系人 */
  @ExcelProperty("联系人")
  @Size(max = 50, message = "联系人长度不能超过50")
  private String contacts;

  /** 联系人手机号 */
  @ExcelProperty("联系人手机号")
  @Size(max = 50, message = "联系人手机号长度不能超过50")
  private String contactsPhone;

  /** QQ/微信 */
  @ExcelProperty("QQ/微信")
  @Size(max = 50, message = "QQ/微信长度不能超过50")
  private String qqWx;

  /** 邮箱 */
  @ExcelProperty("邮箱")
  @Size(max = 50, message = "邮箱长度不能超过50")
  private String email;

  /** 采购合同模板 */
  @ExcelProperty("采购合同模板")
  @Size(max = 50, message = "采购合同模板长度不能超过50")
  private String contractTemplate;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;

  /** 结算类型 */
  @ExcelProperty("结算类型")
  @Size(max = 50, message = "结算类型长度不能超过50")
  private String settleAccountsType;

  /** 预付比例 */
  @ExcelProperty("预付比例")
  @DecimalString(message = "预付比例小数格式不正确", label = "预付比例")
  private String payAdvance;

  /** 结算描述 */
  @ExcelProperty("结算描述")
  @Size(max = 50, message = "结算描述长度不能超过50")
  private String settlementDescribe;

  /** 支付类型 */
  @ExcelProperty("支付类型")
  @Size(max = 50, message = "支付类型长度不能超过50")
  private String payType;

  /** 户名 */
  @ExcelProperty("户名")
  @Size(max = 50, message = "户名长度不能超过50")
  private String accountName;

  /** 开户行 */
  @ExcelProperty("开户行")
  @Size(max = 50, message = "开户行长度不能超过50")
  private String accountBank;

  /** 账号 */
  @ExcelProperty("账号")
  @Size(max = 50, message = "账号长度不能超过50")
  private String account;

  /** 社会统一信用代码 */
  @ExcelProperty("社会统一信用代码")
  @Size(max = 50, message = "社会统一信用代码长度不能超过50")
  private String creditCode;

  /** 网址 */
  @ExcelProperty("网址")
  @Size(max = 1000, message = "网址长度不能超过1000")
  private String webAddress;

  /** 省 */
  @ExcelProperty("省")
  @Size(max = 50, message = "省长度不能超过50")
  private String province;

  /** 市 */
  @ExcelProperty("市")
  @Size(max = 50, message = "市长度不能超过50")
  private String city;

  /** 地区 */
  @ExcelProperty("地区")
  @Size(max = 50, message = "地区长度不能超过50")
  private String region;

  /** 状态 */
  @ExcelProperty("状态")
  @Size(max = 50, message = "状态长度不能超过50")
  private String status;

  /** 关联仓库 */
  @ExcelProperty("关联仓库")
  @Size(max = 50, message = "关联仓库长度不能超过50")
  private String wareHouseName;

  @ExcelIgnore
  @Schema(title = "关联仓库")
  private String wareHouse;

  /** 结算方式 */
  @ExcelProperty("结算方式")
  @Size(max = 50, message = "结算方式长度不能超过50")
  private String settleMethods;

  /** 创建时间 */
  @ExcelProperty("创建时间")
  @DateTimeString(message = "创建时间不是有效的时间日期格式")
  private String createDate;

  /** 系统用户 */
  @ExcelProperty("系统用户")
  @Size(max = 50, message = "系统用户长度不能超过50")
  private String sysUserIdName;

  @ExcelIgnore
  @Schema(title = "系统用户")
  private String sysUserId;
}
